from1(X) -> cons2(X, n__from1(n__s1(X)))
2ndspos2(0, Z) -> rnil
2ndspos2(s1(N), cons2(X, Z)) -> 2ndspos2(s1(N), cons22(X, activate1(Z)))
2ndspos2(s1(N), cons22(X, cons2(Y, Z))) -> rcons2(posrecip1(Y), 2ndsneg2(N, activate1(Z)))
2ndsneg2(0, Z) -> rnil
2ndsneg2(s1(N), cons2(X, Z)) -> 2ndsneg2(s1(N), cons22(X, activate1(Z)))
2ndsneg2(s1(N), cons22(X, cons2(Y, Z))) -> rcons2(negrecip1(Y), 2ndspos2(N, activate1(Z)))
pi1(X) -> 2ndspos2(X, from1(0))
plus2(0, Y) -> Y
plus2(s1(X), Y) -> s1(plus2(X, Y))
times2(0, Y) -> 0
times2(s1(X), Y) -> plus2(Y, times2(X, Y))
square1(X) -> times2(X, X)
from1(X) -> n__from1(X)
s1(X) -> n__s1(X)
activate1(n__from1(X)) -> from1(activate1(X))
activate1(n__s1(X)) -> s1(activate1(X))
activate1(X) -> X
↳ QTRS
↳ DependencyPairsProof
from1(X) -> cons2(X, n__from1(n__s1(X)))
2ndspos2(0, Z) -> rnil
2ndspos2(s1(N), cons2(X, Z)) -> 2ndspos2(s1(N), cons22(X, activate1(Z)))
2ndspos2(s1(N), cons22(X, cons2(Y, Z))) -> rcons2(posrecip1(Y), 2ndsneg2(N, activate1(Z)))
2ndsneg2(0, Z) -> rnil
2ndsneg2(s1(N), cons2(X, Z)) -> 2ndsneg2(s1(N), cons22(X, activate1(Z)))
2ndsneg2(s1(N), cons22(X, cons2(Y, Z))) -> rcons2(negrecip1(Y), 2ndspos2(N, activate1(Z)))
pi1(X) -> 2ndspos2(X, from1(0))
plus2(0, Y) -> Y
plus2(s1(X), Y) -> s1(plus2(X, Y))
times2(0, Y) -> 0
times2(s1(X), Y) -> plus2(Y, times2(X, Y))
square1(X) -> times2(X, X)
from1(X) -> n__from1(X)
s1(X) -> n__s1(X)
activate1(n__from1(X)) -> from1(activate1(X))
activate1(n__s1(X)) -> s1(activate1(X))
activate1(X) -> X
2NDSNEG2(s1(N), cons22(X, cons2(Y, Z))) -> 2NDSPOS2(N, activate1(Z))
PLUS2(s1(X), Y) -> S1(plus2(X, Y))
2NDSPOS2(s1(N), cons22(X, cons2(Y, Z))) -> ACTIVATE1(Z)
2NDSNEG2(s1(N), cons22(X, cons2(Y, Z))) -> ACTIVATE1(Z)
SQUARE1(X) -> TIMES2(X, X)
PI1(X) -> FROM1(0)
2NDSPOS2(s1(N), cons2(X, Z)) -> 2NDSPOS2(s1(N), cons22(X, activate1(Z)))
ACTIVATE1(n__from1(X)) -> FROM1(activate1(X))
PI1(X) -> 2NDSPOS2(X, from1(0))
PLUS2(s1(X), Y) -> PLUS2(X, Y)
TIMES2(s1(X), Y) -> PLUS2(Y, times2(X, Y))
ACTIVATE1(n__s1(X)) -> S1(activate1(X))
TIMES2(s1(X), Y) -> TIMES2(X, Y)
2NDSPOS2(s1(N), cons22(X, cons2(Y, Z))) -> 2NDSNEG2(N, activate1(Z))
2NDSNEG2(s1(N), cons2(X, Z)) -> 2NDSNEG2(s1(N), cons22(X, activate1(Z)))
2NDSNEG2(s1(N), cons2(X, Z)) -> ACTIVATE1(Z)
2NDSPOS2(s1(N), cons2(X, Z)) -> ACTIVATE1(Z)
ACTIVATE1(n__from1(X)) -> ACTIVATE1(X)
ACTIVATE1(n__s1(X)) -> ACTIVATE1(X)
from1(X) -> cons2(X, n__from1(n__s1(X)))
2ndspos2(0, Z) -> rnil
2ndspos2(s1(N), cons2(X, Z)) -> 2ndspos2(s1(N), cons22(X, activate1(Z)))
2ndspos2(s1(N), cons22(X, cons2(Y, Z))) -> rcons2(posrecip1(Y), 2ndsneg2(N, activate1(Z)))
2ndsneg2(0, Z) -> rnil
2ndsneg2(s1(N), cons2(X, Z)) -> 2ndsneg2(s1(N), cons22(X, activate1(Z)))
2ndsneg2(s1(N), cons22(X, cons2(Y, Z))) -> rcons2(negrecip1(Y), 2ndspos2(N, activate1(Z)))
pi1(X) -> 2ndspos2(X, from1(0))
plus2(0, Y) -> Y
plus2(s1(X), Y) -> s1(plus2(X, Y))
times2(0, Y) -> 0
times2(s1(X), Y) -> plus2(Y, times2(X, Y))
square1(X) -> times2(X, X)
from1(X) -> n__from1(X)
s1(X) -> n__s1(X)
activate1(n__from1(X)) -> from1(activate1(X))
activate1(n__s1(X)) -> s1(activate1(X))
activate1(X) -> X
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
2NDSNEG2(s1(N), cons22(X, cons2(Y, Z))) -> 2NDSPOS2(N, activate1(Z))
PLUS2(s1(X), Y) -> S1(plus2(X, Y))
2NDSPOS2(s1(N), cons22(X, cons2(Y, Z))) -> ACTIVATE1(Z)
2NDSNEG2(s1(N), cons22(X, cons2(Y, Z))) -> ACTIVATE1(Z)
SQUARE1(X) -> TIMES2(X, X)
PI1(X) -> FROM1(0)
2NDSPOS2(s1(N), cons2(X, Z)) -> 2NDSPOS2(s1(N), cons22(X, activate1(Z)))
ACTIVATE1(n__from1(X)) -> FROM1(activate1(X))
PI1(X) -> 2NDSPOS2(X, from1(0))
PLUS2(s1(X), Y) -> PLUS2(X, Y)
TIMES2(s1(X), Y) -> PLUS2(Y, times2(X, Y))
ACTIVATE1(n__s1(X)) -> S1(activate1(X))
TIMES2(s1(X), Y) -> TIMES2(X, Y)
2NDSPOS2(s1(N), cons22(X, cons2(Y, Z))) -> 2NDSNEG2(N, activate1(Z))
2NDSNEG2(s1(N), cons2(X, Z)) -> 2NDSNEG2(s1(N), cons22(X, activate1(Z)))
2NDSNEG2(s1(N), cons2(X, Z)) -> ACTIVATE1(Z)
2NDSPOS2(s1(N), cons2(X, Z)) -> ACTIVATE1(Z)
ACTIVATE1(n__from1(X)) -> ACTIVATE1(X)
ACTIVATE1(n__s1(X)) -> ACTIVATE1(X)
from1(X) -> cons2(X, n__from1(n__s1(X)))
2ndspos2(0, Z) -> rnil
2ndspos2(s1(N), cons2(X, Z)) -> 2ndspos2(s1(N), cons22(X, activate1(Z)))
2ndspos2(s1(N), cons22(X, cons2(Y, Z))) -> rcons2(posrecip1(Y), 2ndsneg2(N, activate1(Z)))
2ndsneg2(0, Z) -> rnil
2ndsneg2(s1(N), cons2(X, Z)) -> 2ndsneg2(s1(N), cons22(X, activate1(Z)))
2ndsneg2(s1(N), cons22(X, cons2(Y, Z))) -> rcons2(negrecip1(Y), 2ndspos2(N, activate1(Z)))
pi1(X) -> 2ndspos2(X, from1(0))
plus2(0, Y) -> Y
plus2(s1(X), Y) -> s1(plus2(X, Y))
times2(0, Y) -> 0
times2(s1(X), Y) -> plus2(Y, times2(X, Y))
square1(X) -> times2(X, X)
from1(X) -> n__from1(X)
s1(X) -> n__s1(X)
activate1(n__from1(X)) -> from1(activate1(X))
activate1(n__s1(X)) -> s1(activate1(X))
activate1(X) -> X
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDP
↳ QDP
ACTIVATE1(n__from1(X)) -> ACTIVATE1(X)
ACTIVATE1(n__s1(X)) -> ACTIVATE1(X)
from1(X) -> cons2(X, n__from1(n__s1(X)))
2ndspos2(0, Z) -> rnil
2ndspos2(s1(N), cons2(X, Z)) -> 2ndspos2(s1(N), cons22(X, activate1(Z)))
2ndspos2(s1(N), cons22(X, cons2(Y, Z))) -> rcons2(posrecip1(Y), 2ndsneg2(N, activate1(Z)))
2ndsneg2(0, Z) -> rnil
2ndsneg2(s1(N), cons2(X, Z)) -> 2ndsneg2(s1(N), cons22(X, activate1(Z)))
2ndsneg2(s1(N), cons22(X, cons2(Y, Z))) -> rcons2(negrecip1(Y), 2ndspos2(N, activate1(Z)))
pi1(X) -> 2ndspos2(X, from1(0))
plus2(0, Y) -> Y
plus2(s1(X), Y) -> s1(plus2(X, Y))
times2(0, Y) -> 0
times2(s1(X), Y) -> plus2(Y, times2(X, Y))
square1(X) -> times2(X, X)
from1(X) -> n__from1(X)
s1(X) -> n__s1(X)
activate1(n__from1(X)) -> from1(activate1(X))
activate1(n__s1(X)) -> s1(activate1(X))
activate1(X) -> X
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ACTIVATE1(n__from1(X)) -> ACTIVATE1(X)
Used ordering: Polynomial interpretation [21]:
ACTIVATE1(n__s1(X)) -> ACTIVATE1(X)
POL(ACTIVATE1(x1)) = x1
POL(n__from1(x1)) = 1 + 2·x1
POL(n__s1(x1)) = x1
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDP
↳ QDP
ACTIVATE1(n__s1(X)) -> ACTIVATE1(X)
from1(X) -> cons2(X, n__from1(n__s1(X)))
2ndspos2(0, Z) -> rnil
2ndspos2(s1(N), cons2(X, Z)) -> 2ndspos2(s1(N), cons22(X, activate1(Z)))
2ndspos2(s1(N), cons22(X, cons2(Y, Z))) -> rcons2(posrecip1(Y), 2ndsneg2(N, activate1(Z)))
2ndsneg2(0, Z) -> rnil
2ndsneg2(s1(N), cons2(X, Z)) -> 2ndsneg2(s1(N), cons22(X, activate1(Z)))
2ndsneg2(s1(N), cons22(X, cons2(Y, Z))) -> rcons2(negrecip1(Y), 2ndspos2(N, activate1(Z)))
pi1(X) -> 2ndspos2(X, from1(0))
plus2(0, Y) -> Y
plus2(s1(X), Y) -> s1(plus2(X, Y))
times2(0, Y) -> 0
times2(s1(X), Y) -> plus2(Y, times2(X, Y))
square1(X) -> times2(X, X)
from1(X) -> n__from1(X)
s1(X) -> n__s1(X)
activate1(n__from1(X)) -> from1(activate1(X))
activate1(n__s1(X)) -> s1(activate1(X))
activate1(X) -> X
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ACTIVATE1(n__s1(X)) -> ACTIVATE1(X)
POL(ACTIVATE1(x1)) = 2·x1
POL(n__s1(x1)) = 1 + 2·x1
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
↳ QDP
↳ QDP
↳ QDP
from1(X) -> cons2(X, n__from1(n__s1(X)))
2ndspos2(0, Z) -> rnil
2ndspos2(s1(N), cons2(X, Z)) -> 2ndspos2(s1(N), cons22(X, activate1(Z)))
2ndspos2(s1(N), cons22(X, cons2(Y, Z))) -> rcons2(posrecip1(Y), 2ndsneg2(N, activate1(Z)))
2ndsneg2(0, Z) -> rnil
2ndsneg2(s1(N), cons2(X, Z)) -> 2ndsneg2(s1(N), cons22(X, activate1(Z)))
2ndsneg2(s1(N), cons22(X, cons2(Y, Z))) -> rcons2(negrecip1(Y), 2ndspos2(N, activate1(Z)))
pi1(X) -> 2ndspos2(X, from1(0))
plus2(0, Y) -> Y
plus2(s1(X), Y) -> s1(plus2(X, Y))
times2(0, Y) -> 0
times2(s1(X), Y) -> plus2(Y, times2(X, Y))
square1(X) -> times2(X, X)
from1(X) -> n__from1(X)
s1(X) -> n__s1(X)
activate1(n__from1(X)) -> from1(activate1(X))
activate1(n__s1(X)) -> s1(activate1(X))
activate1(X) -> X
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDP
PLUS2(s1(X), Y) -> PLUS2(X, Y)
from1(X) -> cons2(X, n__from1(n__s1(X)))
2ndspos2(0, Z) -> rnil
2ndspos2(s1(N), cons2(X, Z)) -> 2ndspos2(s1(N), cons22(X, activate1(Z)))
2ndspos2(s1(N), cons22(X, cons2(Y, Z))) -> rcons2(posrecip1(Y), 2ndsneg2(N, activate1(Z)))
2ndsneg2(0, Z) -> rnil
2ndsneg2(s1(N), cons2(X, Z)) -> 2ndsneg2(s1(N), cons22(X, activate1(Z)))
2ndsneg2(s1(N), cons22(X, cons2(Y, Z))) -> rcons2(negrecip1(Y), 2ndspos2(N, activate1(Z)))
pi1(X) -> 2ndspos2(X, from1(0))
plus2(0, Y) -> Y
plus2(s1(X), Y) -> s1(plus2(X, Y))
times2(0, Y) -> 0
times2(s1(X), Y) -> plus2(Y, times2(X, Y))
square1(X) -> times2(X, X)
from1(X) -> n__from1(X)
s1(X) -> n__s1(X)
activate1(n__from1(X)) -> from1(activate1(X))
activate1(n__s1(X)) -> s1(activate1(X))
activate1(X) -> X
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
PLUS2(s1(X), Y) -> PLUS2(X, Y)
POL(PLUS2(x1, x2)) = 2·x1
POL(s1(x1)) = 1 + 2·x1
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
↳ QDP
↳ QDP
from1(X) -> cons2(X, n__from1(n__s1(X)))
2ndspos2(0, Z) -> rnil
2ndspos2(s1(N), cons2(X, Z)) -> 2ndspos2(s1(N), cons22(X, activate1(Z)))
2ndspos2(s1(N), cons22(X, cons2(Y, Z))) -> rcons2(posrecip1(Y), 2ndsneg2(N, activate1(Z)))
2ndsneg2(0, Z) -> rnil
2ndsneg2(s1(N), cons2(X, Z)) -> 2ndsneg2(s1(N), cons22(X, activate1(Z)))
2ndsneg2(s1(N), cons22(X, cons2(Y, Z))) -> rcons2(negrecip1(Y), 2ndspos2(N, activate1(Z)))
pi1(X) -> 2ndspos2(X, from1(0))
plus2(0, Y) -> Y
plus2(s1(X), Y) -> s1(plus2(X, Y))
times2(0, Y) -> 0
times2(s1(X), Y) -> plus2(Y, times2(X, Y))
square1(X) -> times2(X, X)
from1(X) -> n__from1(X)
s1(X) -> n__s1(X)
activate1(n__from1(X)) -> from1(activate1(X))
activate1(n__s1(X)) -> s1(activate1(X))
activate1(X) -> X
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
TIMES2(s1(X), Y) -> TIMES2(X, Y)
from1(X) -> cons2(X, n__from1(n__s1(X)))
2ndspos2(0, Z) -> rnil
2ndspos2(s1(N), cons2(X, Z)) -> 2ndspos2(s1(N), cons22(X, activate1(Z)))
2ndspos2(s1(N), cons22(X, cons2(Y, Z))) -> rcons2(posrecip1(Y), 2ndsneg2(N, activate1(Z)))
2ndsneg2(0, Z) -> rnil
2ndsneg2(s1(N), cons2(X, Z)) -> 2ndsneg2(s1(N), cons22(X, activate1(Z)))
2ndsneg2(s1(N), cons22(X, cons2(Y, Z))) -> rcons2(negrecip1(Y), 2ndspos2(N, activate1(Z)))
pi1(X) -> 2ndspos2(X, from1(0))
plus2(0, Y) -> Y
plus2(s1(X), Y) -> s1(plus2(X, Y))
times2(0, Y) -> 0
times2(s1(X), Y) -> plus2(Y, times2(X, Y))
square1(X) -> times2(X, X)
from1(X) -> n__from1(X)
s1(X) -> n__s1(X)
activate1(n__from1(X)) -> from1(activate1(X))
activate1(n__s1(X)) -> s1(activate1(X))
activate1(X) -> X
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
TIMES2(s1(X), Y) -> TIMES2(X, Y)
POL(TIMES2(x1, x2)) = 2·x1
POL(s1(x1)) = 1 + 2·x1
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
↳ QDP
from1(X) -> cons2(X, n__from1(n__s1(X)))
2ndspos2(0, Z) -> rnil
2ndspos2(s1(N), cons2(X, Z)) -> 2ndspos2(s1(N), cons22(X, activate1(Z)))
2ndspos2(s1(N), cons22(X, cons2(Y, Z))) -> rcons2(posrecip1(Y), 2ndsneg2(N, activate1(Z)))
2ndsneg2(0, Z) -> rnil
2ndsneg2(s1(N), cons2(X, Z)) -> 2ndsneg2(s1(N), cons22(X, activate1(Z)))
2ndsneg2(s1(N), cons22(X, cons2(Y, Z))) -> rcons2(negrecip1(Y), 2ndspos2(N, activate1(Z)))
pi1(X) -> 2ndspos2(X, from1(0))
plus2(0, Y) -> Y
plus2(s1(X), Y) -> s1(plus2(X, Y))
times2(0, Y) -> 0
times2(s1(X), Y) -> plus2(Y, times2(X, Y))
square1(X) -> times2(X, X)
from1(X) -> n__from1(X)
s1(X) -> n__s1(X)
activate1(n__from1(X)) -> from1(activate1(X))
activate1(n__s1(X)) -> s1(activate1(X))
activate1(X) -> X
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
2NDSNEG2(s1(N), cons22(X, cons2(Y, Z))) -> 2NDSPOS2(N, activate1(Z))
2NDSNEG2(s1(N), cons2(X, Z)) -> 2NDSNEG2(s1(N), cons22(X, activate1(Z)))
2NDSPOS2(s1(N), cons22(X, cons2(Y, Z))) -> 2NDSNEG2(N, activate1(Z))
2NDSPOS2(s1(N), cons2(X, Z)) -> 2NDSPOS2(s1(N), cons22(X, activate1(Z)))
from1(X) -> cons2(X, n__from1(n__s1(X)))
2ndspos2(0, Z) -> rnil
2ndspos2(s1(N), cons2(X, Z)) -> 2ndspos2(s1(N), cons22(X, activate1(Z)))
2ndspos2(s1(N), cons22(X, cons2(Y, Z))) -> rcons2(posrecip1(Y), 2ndsneg2(N, activate1(Z)))
2ndsneg2(0, Z) -> rnil
2ndsneg2(s1(N), cons2(X, Z)) -> 2ndsneg2(s1(N), cons22(X, activate1(Z)))
2ndsneg2(s1(N), cons22(X, cons2(Y, Z))) -> rcons2(negrecip1(Y), 2ndspos2(N, activate1(Z)))
pi1(X) -> 2ndspos2(X, from1(0))
plus2(0, Y) -> Y
plus2(s1(X), Y) -> s1(plus2(X, Y))
times2(0, Y) -> 0
times2(s1(X), Y) -> plus2(Y, times2(X, Y))
square1(X) -> times2(X, X)
from1(X) -> n__from1(X)
s1(X) -> n__s1(X)
activate1(n__from1(X)) -> from1(activate1(X))
activate1(n__s1(X)) -> s1(activate1(X))
activate1(X) -> X
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
2NDSNEG2(s1(N), cons22(X, cons2(Y, Z))) -> 2NDSPOS2(N, activate1(Z))
2NDSPOS2(s1(N), cons22(X, cons2(Y, Z))) -> 2NDSNEG2(N, activate1(Z))
Used ordering: Polynomial interpretation [21]:
2NDSNEG2(s1(N), cons2(X, Z)) -> 2NDSNEG2(s1(N), cons22(X, activate1(Z)))
2NDSPOS2(s1(N), cons2(X, Z)) -> 2NDSPOS2(s1(N), cons22(X, activate1(Z)))
POL(2NDSNEG2(x1, x2)) = 2·x1
POL(2NDSPOS2(x1, x2)) = 2 + 2·x1
POL(activate1(x1)) = 0
POL(cons2(x1, x2)) = 0
POL(cons22(x1, x2)) = 0
POL(from1(x1)) = 0
POL(n__from1(x1)) = 0
POL(n__s1(x1)) = 0
POL(s1(x1)) = 2 + x1
s1(X) -> n__s1(X)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
2NDSNEG2(s1(N), cons2(X, Z)) -> 2NDSNEG2(s1(N), cons22(X, activate1(Z)))
2NDSPOS2(s1(N), cons2(X, Z)) -> 2NDSPOS2(s1(N), cons22(X, activate1(Z)))
from1(X) -> cons2(X, n__from1(n__s1(X)))
2ndspos2(0, Z) -> rnil
2ndspos2(s1(N), cons2(X, Z)) -> 2ndspos2(s1(N), cons22(X, activate1(Z)))
2ndspos2(s1(N), cons22(X, cons2(Y, Z))) -> rcons2(posrecip1(Y), 2ndsneg2(N, activate1(Z)))
2ndsneg2(0, Z) -> rnil
2ndsneg2(s1(N), cons2(X, Z)) -> 2ndsneg2(s1(N), cons22(X, activate1(Z)))
2ndsneg2(s1(N), cons22(X, cons2(Y, Z))) -> rcons2(negrecip1(Y), 2ndspos2(N, activate1(Z)))
pi1(X) -> 2ndspos2(X, from1(0))
plus2(0, Y) -> Y
plus2(s1(X), Y) -> s1(plus2(X, Y))
times2(0, Y) -> 0
times2(s1(X), Y) -> plus2(Y, times2(X, Y))
square1(X) -> times2(X, X)
from1(X) -> n__from1(X)
s1(X) -> n__s1(X)
activate1(n__from1(X)) -> from1(activate1(X))
activate1(n__s1(X)) -> s1(activate1(X))
activate1(X) -> X